Time Series Analysis হল একটি পরিসংখ্যানিক কৌশল যা সময়ের সাথে পরিবর্তনশীল ডেটা বিশ্লেষণ করে। এটি মূলত একধরণের ডেটা যেখানে ডেটা পয়েন্টগুলি একটি নির্দিষ্ট সময়সীমার মধ্যে পরপর সংগৃহীত হয়। Time Series Analysis এর মাধ্যমে আপনি অতীতের ডেটা ব্যবহার করে ভবিষ্যতের প্রবণতা এবং আচরণ পূর্বাভাস করতে পারেন। এটি অনেক ধরনের ভবিষ্যদ্বাণী, যেমন অর্থনীতি, স্টক মার্কেট, আবহাওয়া, বিক্রয় এবং জনসংখ্যার প্রবৃদ্ধি বিশ্লেষণে ব্যবহৃত হয়।
Time Series Analysis এর মূল উপাদান:
- Trend (প্রবণতা): একটি দীর্ঘমেয়াদী গতি যা ডেটাতে সময়ের সাথে স্থিতিশীলভাবে বৃদ্ধি বা হ্রাস পায়।
- উদাহরণ: অর্থনৈতিক প্রবৃদ্ধি, বিক্রয় বৃদ্ধি, জনসংখ্যার বৃদ্ধি।
- Seasonality (ঋতু পরিবর্তন): একটি মৌসুমী বা নিয়মিত প্যাটার্ন যা বিশেষ সময়ে পুনরাবৃত্তি হয়, যেমন প্রতি বছর, প্রতি মাসে বা প্রতি সপ্তাহে।
- উদাহরণ: শীতকালে গরম কাপড়ের বিক্রয় বৃদ্ধি, গ্রীষ্মকালে আইসক্রিমের বিক্রি বৃদ্ধি।
- Cyclic Patterns (চক্রীয় প্যাটার্ন): সময়ের সাথে পরিবর্তিত আরও দীর্ঘমেয়াদী প্রভাব যা মৌসুমী পরিবর্তন না হলেও ডেটার মধ্যে পরিবর্তন সৃষ্টি করে।
- উদাহরণ: অর্থনৈতিক মন্দা বা বৈশ্বিক সংকট।
- Irregular Components (অস্বাভাবিক উপাদান): এই উপাদানগুলি যেগুলি অপ্রত্যাশিত বা কৃত্রিম ঘটনা, যেমন প্রাকৃতিক বিপর্যয় বা যুদ্ধ, যা স্বাভাবিক প্রবণতা বা ঋতু পরিবর্তনের বাইরে।
Time Series Analysis এর ধাপ:
- Data Collection (ডেটা সংগ্রহ): Time series ডেটা সংগ্রহ করতে হয়, যেমন স্টক মার্কেট ডেটা, বিক্রয় ডেটা, আবহাওয়া ডেটা, ইত্যাদি।
- Decomposition (বিভাজন): Time series ডেটা প্রধানত ট্রেন্ড, সিজনালিটি এবং বাকি অস্বাভাবিক উপাদানগুলিতে ভাগ করা হয়। এই বিভাজন ডেটার প্যাটার্ন এবং ভবিষ্যদ্বাণী নির্ধারণে সহায়ক।
- Additive model: (যেখানে ট্রেন্ড, সিজনালিটি এবং ত্রুটি বা অস্বাভাবিকতা)
- Multiplicative model:
- Model Fitting (মডেল ফিটিং): Time series ডেটার উপর একটি মডেল ফিট করা হয়, যেমন ARIMA, SARIMA, Exponential Smoothing ইত্যাদি, যা ভবিষ্যতের ডেটা পূর্বাভাস করতে সহায়ক।
- Model Evaluation (মডেল মূল্যায়ন): মডেলটিকে পরিমাপ এবং মূল্যায়ন করা হয়। সাধারণভাবে Mean Absolute Error (MAE), Root Mean Squared Error (RMSE) এবং Mean Absolute Percentage Error (MAPE) ব্যবহার করা হয়।
- Forecasting (ভবিষ্যদ্বাণী): মডেল ব্যবহার করে ভবিষ্যতের সময়সীমার জন্য পূর্বাভাস তৈরি করা হয়।
Time Series Analysis এর জনপ্রিয় মডেল:
- ARIMA (AutoRegressive Integrated Moving Average):
- ARIMA একটি জনপ্রিয় এবং শক্তিশালী মডেল যা Time Series ডেটার ট্রেন্ড, মৌলিকতা, এবং স্বতঃসিদ্ধ সম্পর্ক বুঝতে সহায়ক।
- ARIMA মডেল তিনটি উপাদানে বিভক্ত:
- AR (AutoRegressive): পূর্ববর্তী ডেটার উপর নির্ভরশীলতা।
- I (Integrated): ডেটার পার্থক্য গ্রহণ করার প্রক্রিয়া।
- MA (Moving Average): পূর্ববর্তী ত্রুটি (error) এর গড় ব্যবহার।
- SARIMA (Seasonal ARIMA):
- SARIMA হল ARIMA মডেলের একটি বিস্তৃত সংস্করণ যা মৌসুমী প্যাটার্ন ধরতে সহায়ক।
- Exponential Smoothing:
- এটি একটি সহজ এবং জনপ্রিয় মডেল যা সময়ের সাথে ডেটাকে গড় থেকে বিশ্লেষণ করে এবং ভবিষ্যদ্বাণী তৈরি করে।
- Prophet (Facebook Prophet):
- Prophet হল একটি উন্মুক্ত সোর্স মডেল যা মূলত সিজনাল এবং ট্রেন্ড বিশ্লেষণের জন্য ব্যবহৃত হয় এবং সহজেই বৃহত্তর ডেটা সেটে কাজ করে।
উদাহরণ: Time Series Analysis (ARIMA মডেল)
স্টক মার্কেটের মূল্য পূর্বাভাস:
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.arima.model import ARIMA
# ডেটা লোড (উদাহরণস্বরূপ, আপনি নিজের ডেটা ব্যবহার করবেন)
df = pd.read_csv('stock_prices.csv', parse_dates=['Date'], index_col='Date')
# ডেটার প্লট
df['Close'].plot(figsize=(10, 6))
plt.title('Stock Price Over Time')
plt.xlabel('Date')
plt.ylabel('Price')
plt.show()
# ARIMA মডেল তৈরি
model = ARIMA(df['Close'], order=(5, 1, 0)) # p, d, q মান নির্ধারণ
model_fit = model.fit()
# ভবিষ্যতের পূর্বাভাস
forecast = model_fit.forecast(steps=30) # 30 দিনের পূর্বাভাস
# পূর্বাভাসের প্লট
plt.plot(df['Close'], label='Actual')
plt.plot(pd.date_range(df.index[-1], periods=30, freq='D'), forecast, label='Forecast', color='red')
plt.legend()
plt.show()
ব্যাখ্যা:
- এখানে, একটি ARIMA মডেল তৈরি করা হয়েছে যেখানে
order=(5, 1, 0)নির্দেশ করে AR (AutoRegressive) এর জন্য 5 ল্যাগ, I (Integrated) এর জন্য 1 পার্থক্য, এবং MA (Moving Average) এর জন্য 0 ত্রুটি। - মডেলটি 30 দিনের ভবিষ্যত মূল্য পূর্বাভাস করে, যা আমরা প্লট করে দেখতে পারি।
SARIMA (Seasonal ARIMA) মডেল
SARIMA মডেল সময়ে সময়ে মৌসুমী প্যাটার্ন ক্যাপচার করতে সহায়ক।
from statsmodels.tsa.statespace.sarimax import SARIMAX
# SARIMA মডেল তৈরি
sarima_model = SARIMAX(df['Close'], order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
sarima_model_fit = sarima_model.fit()
# ভবিষ্যতের পূর্বাভাস
forecast_sarima = sarima_model_fit.forecast(steps=30)
# পূর্বাভাসের প্লট
plt.plot(df['Close'], label='Actual')
plt.plot(pd.date_range(df.index[-1], periods=30, freq='D'), forecast_sarima, label='Forecast (SARIMA)', color='green')
plt.legend()
plt.show()
Time Series Forecasting-এর উপকারিতা:
- ব্যবসায়িক কৌশল: Time Series Analysis আপনাকে ভবিষ্যতের প্রবণতা বা বাজার পরিস্থিতি সম্পর্কে পূর্বাভাস দিতে সহায়ক হতে পারে।
- আর্থিক বিশ্লেষণ: শেয়ার বাজার, মুদ্রা মূল্য এবং অন্যান্য আর্থিক পণ্যের পূর্বাভাসে ব্যবহৃত।
- আবহাওয়া পূর্বাভাস: আবহাওয়া ডেটার ভিত্তিতে ভবিষ্যতের পূর্বাভাস তৈরি করা।
- মোটর এবং যানবাহন চলাচল পূর্বাভাস: যানবাহনের চলাচল বিশ্লেষণ এবং ট্রাফিক পূর্বাভাস প্রদান করা।
সারাংশ
Time Series Analysis ডেটার মধ্যে ট্রেন্ড, মৌসুমীতা এবং চক্রমূলক প্যাটার্ন বিশ্লেষণ করে, যা ভবিষ্যতে ডেটার পূর্বাভাস তৈরি করতে সাহায্য করে। ARIMA, SARIMA, Exponential Smoothing, এবং Prophet-এর মতো মডেলগুলি এই বিশ্লেষণ এবং পূর্বাভাসের জন্য ব্যবহৃত হয়। এটি ব্যবসা, অর্থনীতি, আবহাওয়া এবং অন্যান্য ক্ষেত্রে খুবই কার্যকরী।
Time Series Data হল এমন একটি ডেটা সেকুয়েন্স যা নির্দিষ্ট সময়ের উপর ভিত্তি করে সংগৃহীত হয়। এটি একটি ডেটার সিরিজ যেখানে প্রতিটি ডেটা পয়েন্ট একটি নির্দিষ্ট সময় পিরিয়ডের জন্য সংগ্রহ করা হয়, যেমন প্রতি ঘন্টা, দিন, সপ্তাহ, মাস, বা বছর। Time Series ডেটা এমন এক ধরণের ডেটা যা সময়ের সাথে সম্পর্কিত থাকে, এবং এর মধ্যে আগের ডেটা পয়েন্টগুলির উপর ভিত্তি করে ভবিষ্যতের প্যাটার্ন, প্রবণতা বা আচরণ অনুমান করা হয়।
Time Series ডেটার প্রধান বৈশিষ্ট্য:
- সাময়িক সম্পর্ক (Temporal Dependence): Time series ডেটার প্রতিটি পয়েন্ট আগের পয়েন্টগুলির সাথে সম্পর্কিত থাকে।
- ট্রেন্ড (Trend): কিছু সময়ের মধ্যে ডেটার একটি সাধারণ প্রবণতা দেখা যেতে পারে, যেমন, দাম বাড়ানো বা কমানো।
- সিজনালিটি (Seasonality): Time series ডেটাতে সাধারণত কিছু নির্দিষ্ট সময়ে পুনরাবৃত্তি হতে থাকে (যেমন, বছরের একটি নির্দিষ্ট সময়ে ব্যবসার বিক্রি বাড়ানো)।
- অবিশুদ্ধতা (Irregularity): কিছু অপ্রত্যাশিত বা র্যান্ডম পরিবর্তন যা সাধারণ প্রবণতা বা সিজনাল প্যাটার্নে সঙ্গতিপূর্ণ নয়।
Time Series Data এর উদাহরণ:
- স্টক মার্কেটের দাম: প্রতি দিন বা প্রতি মিনিটে একটি শেয়ারের দাম পরিবর্তিত হয়।
- মৌসুমী বৃষ্টিপাত: প্রতি মাসে বা বছরে বৃষ্টির পরিমাণ।
- বিক্রির তথ্য: দোকানে বা কোম্পানির বিক্রির পরিমাণ বা আয় প্রতি মাসে বা বছরে।
Time Series Data ব্যবহার:
Time Series Data বিভিন্ন ক্ষেত্রে ব্যবহার করা হয় এবং এটি ভবিষ্যদ্বাণী (forecasting), প্যাটার্ন শনাক্তকরণ, প্রবণতা বিশ্লেষণ ইত্যাদির জন্য একটি গুরুত্বপূর্ণ সরঞ্জাম।
১. ভবিষ্যদ্বাণী (Forecasting):
Time Series ডেটা ব্যবহার করে ভবিষ্যতের ডেটা পয়েন্ট পূর্বাভাস করা হয়। যেমন:
- স্টক মার্কেটের পূর্বাভাস: ভবিষ্যতের শেয়ার মূল্য বা সূচকের পূর্বাভাস।
- আবহাওয়া পূর্বাভাস: আগামী দিনের বা মাসের আবহাওয়ার পূর্বাভাস (যেমন, তাপমাত্রা, বৃষ্টিপাত, বাতাসের গতি)।
২. ট্রেন্ড বিশ্লেষণ (Trend Analysis):
Time Series ডেটার মধ্যে ট্রেন্ড বা প্রবণতা বিশ্লেষণ করা হয়, যেমন:
- বিক্রির প্রবণতা: কোম্পানির বিক্রি বা রাজস্ব বাড়ছে কি কমছে তা বিশ্লেষণ করা।
- অর্থনৈতিক প্রবণতা: অর্থনীতির বৃদ্ধির হার, মূল্যস্ফীতি বা বেকারত্বের হার বিশ্লেষণ করা।
৩. সিজনালিটি বিশ্লেষণ (Seasonality Analysis):
Time Series ডেটার মধ্যে সিজনাল প্যাটার্ন বা মওসুমি পরিবর্তন চিহ্নিত করা হয়, যেমন:
- ক্রিসমাস বা ডেভিডের সময় বিক্রি বৃদ্ধি: বছরের নির্দিষ্ট সময়ে ব্যবসার ক্রমবর্ধমান বিক্রি।
- মৌসুমী সেলস: কৃষি বা পোশাক খাতে মৌসুমী পণ্য বিক্রয়।
৪. অস্বাভাবিকতা বা অ্যালার্ম শনাক্তকরণ (Anomaly Detection):
Time Series ডেটার মধ্যে কোন অস্বাভাবিকতা বা অপ্রত্যাশিত ঘটনা সনাক্ত করা যায়, যেমন:
- নেটওয়ার্ক ট্রাফিক অ্যালার্ম: কোন সাইটে অস্বাভাবিক ট্রাফিক বৃদ্ধি বা হ্যাকিং চেষ্টার সময়।
- ট্রান্সপোর্টেশন সিস্টেম: ট্রেনের দেরি বা গতি কমে যাওয়া বা কোনো অস্বাভাবিক ঘটনা।
৫. বিশ্লেষণ এবং প্যাটার্ন শনাক্তকরণ (Analysis and Pattern Recognition):
Time Series ডেটা ব্যবহার করে নির্দিষ্ট প্যাটার্ন বা সম্পর্ক শনাক্ত করা হয়। উদাহরণ:
- গ্রাহকের আচরণ: বিভিন্ন সময়ে গ্রাহকদের কেনাকাটার প্রবণতা শনাক্ত করা।
- পণ্যের বিক্রির প্যাটার্ন: কিছু বিশেষ পণ্যের বিক্রি নির্দিষ্ট সময়ে বা দিন অনুযায়ী।
Time Series Analysis এর প্রক্রিয়া
Time Series ডেটার বিশ্লেষণ সাধারণত কয়েকটি পর্যায়ে বিভক্ত থাকে:
- ডেটা প্রক্রিয়াকরণ (Data Preprocessing):
- মিসিং ডেটা হ্যান্ডলিং।
- সিজনাল এবং ট্রেন্ড ডেটা থেকে সরানো।
- ডেটাকে স্ট্যান্ডার্ডাইজ বা নরমালাইজ করা।
- ডেটার প্যাটার্ন বিশ্লেষণ (Pattern Analysis):
- ট্রেন্ড, সিজনালিটি এবং অবিশুদ্ধতা চিহ্নিত করা।
- এক্সপোনেনশিয়াল স্মুথিং (Exponential Smoothing), মোভিং অ্যাভারেজ (Moving Average), ARIMA (AutoRegressive Integrated Moving Average) মডেল ইত্যাদি ব্যবহার করা।
- মডেল তৈরি (Model Building):
- ARIMA, SARIMA, Exponential Smoothing ইত্যাদি মডেল তৈরি করা।
- মডেলটি ডেটা ফিট করা এবং পরীক্ষিত করা।
- ভবিষ্যদ্বাণী (Prediction):
- মডেল দ্বারা ভবিষ্যতের ডেটার পূর্বাভাস করা এবং এটি বিশ্লেষণ করা।
Time Series Data এর জন্য ব্যবহৃত কিছু মডেল:
- ARIMA (AutoRegressive Integrated Moving Average): ARIMA মডেল time series ডেটা বিশ্লেষণের জন্য জনপ্রিয়, যেখানে ডেটা সিজনাল এবং ট্রেন্ড উপাদানগুলির সমন্বয়ে থাকে।
- Exponential Smoothing (ETS): ETS মডেলগুলি সময়ের সাথে ডেটার অতীত মানের জন্য বিভিন্ন ওজন প্রদান করে এবং তার উপর ভিত্তি করে ভবিষ্যদ্বাণী করে।
- Seasonal ARIMA (SARIMA): SARIMA মডেল ARIMA মডেলের উন্নত সংস্করণ, যা সিজনাল প্যাটার্নগুলিকে সমর্থন করে এবং সময়ে সময়ে পরিবর্তিত ডেটা বিশ্লেষণ করে।
- Long Short-Term Memory (LSTM): LSTM হল একটি নিউরাল নেটওয়ার্ক আর্কিটেকচার যা সময় সিরিজ বিশ্লেষণে ব্যাপকভাবে ব্যবহৃত হয়, বিশেষত ভবিষ্যদ্বাণী করার জন্য।
Time Series Data-র বাস্তব ব্যবহার ক্ষেত্র:
- অর্থনীতি ও ফাইন্যান্স:
- স্টক মার্কেটের পূর্বাভাস।
- অর্থনৈতিক সূচক (GDP, মূল্যস্ফীতি) বিশ্লেষণ।
- স্বাস্থ্যসেবা:
- রোগীদের চিকিৎসা ইতিহাস বিশ্লেষণ।
- স্বাস্থ্য খরচের পূর্বাভাস।
- বিক্রয় ও বিপণন:
- সিজনাল পণ্যের বিক্রি অনুমান।
- গ্রাহক আচরণের প্যাটার্ন বিশ্লেষণ।
- অপারেশন ও ম্যানুফ্যাকচারিং:
- উৎপাদন লাইন বা সরবরাহ চেইনের গতি বিশ্লেষণ।
- যন্ত্রপাতির বা মেশিনের রক্ষণাবেক্ষণ পূর্বাভাস।
সারাংশ
Time Series Data হল এমন ডেটা যা সময়ের সাথে সংগৃহীত হয় এবং এর মধ্যে কিছু নির্দিষ্ট প্যাটার্ন, প্রবণতা বা সিজনাল আচরণ থাকে। এটি বিভিন্ন ক্ষেত্র যেমন অর্থনীতি, ব্যবসা, স্বাস্থ্যসেবা, আবহাওয়া পূর্বাভাস, এবং আরও অনেক ক্ষেত্রেই ব্যবহার করা হয়। Time Series বিশ্লেষণ এবং ভবিষ্যদ্বাণী করার জন্য অনেক ধরনের মডেল যেমন ARIMA, LSTM, এবং SARIMA ব্যবহৃত হয়, যা ডেটার ট্রেন্ড, সিজনালিটি, এবং অস্বাভাবিকতা বিশ্লেষণ করতে সাহায্য করে।
Trend, Seasonality, এবং Residual Analysis হল সময়ের সাথে সাথে পরিবর্তিত ডেটা বিশ্লেষণ করার গুরুত্বপূর্ণ উপাদান। যখন আমরা time series data বিশ্লেষণ করি, তখন আমরা এই উপাদানগুলি ব্যবহার করে ডেটার সাধারণ প্রবণতা, মৌসুমী প্রভাব, এবং অবশিষ্টতা (residuals) বুঝতে পারি। এই বিশ্লেষণগুলি ভবিষ্যদ্বাণী মডেল তৈরি করতে সহায়ক এবং ডেটার প্রকৃত ধরণ এবং আচরণ বোঝায়।
১. Trend Analysis
Trend হল সময়ের সাথে সাথে ডেটার মূল প্রবণতা বা সাধারণ দিকনির্দেশনা। এটি দেখতে হয় যে ডেটা কোথায় যাচ্ছে—এটি যদি উপরের দিকে চলে, নীচের দিকে চলে, বা এটি একটি স্থির স্তরে থাকে। Trend কে আমরা সাধারণত দুটি ক্যাটাগরিতে ভাগ করতে পারিঃ
- Positive Trend: যখন ডেটার মান সময়ের সাথে সাথে বাড়ছে।
- Negative Trend: যখন ডেটার মান সময়ের সাথে সাথে কমছে।
- No Trend: যদি ডেটা কোন প্রবণতা না দেখায় এবং চলমান থাকে।
Trend এর উদাহরণ:
যেমন, কোন কোম্পানির বার্ষিক বিক্রয় যদি বৃদ্ধি পায় তবে এটি একটি positive trend। এর বিপরীত, যদি বিক্রয় কমতে থাকে তবে এটি negative trend।
Trend কীভাবে বিশ্লেষণ করবেন:
- Plotting: টাইম সিরিজ ডেটার একটি প্লট তৈরি করে প্রবণতা সহজেই দেখতে পারেন।
- Decomposition: টাইম সিরিজ ডেটাকে ট্রেন্ড, সিজনালিটি, এবং রেসিডুয়াল কম্পোনেন্টে বিভক্ত করা যায়।
import pandas as pd
import matplotlib.pyplot as plt
# টাইম সিরিজ ডেটা উদাহরণ
data = pd.Series([1, 3, 5, 7, 9, 11, 13, 15, 17, 19],
index=pd.date_range(start='2020-01-01', periods=10, freq='M'))
# প্লট তৈরি করা
data.plot(title="Trend Analysis")
plt.show()
২. Seasonality Analysis
Seasonality হল সময়ের সাথে সাথে পুনরাবৃত্তির নির্দিষ্ট প্যাটার্ন বা সাইকেল যা নির্দিষ্ট সময়ের মধ্যে ঘটে। এটি সাধারনত সিজন, মাস, সপ্তাহ, বা দিন অনুযায়ী পুনরাবৃত্তি হয়। সিজনালিটি বিশেষত ঋতু, ছুটির দিন বা মাসের মধ্যে নির্দিষ্ট প্যাটার্নগুলির কারণে দেখা যায়।
Seasonality এর উদাহরণ:
- দোকানের বিক্রয় যে সময়ে ক্রিসমাস বা সাপ্তাহিক ছুটির দিনগুলির কাছাকাছি থাকে, এটি সিজনাল ডিমান্ড বা সিজনালিটি।
- আবহাওয়ার কারণে গরম মাসে আইসক্রিমের বিক্রি বেশি হতে পারে।
Seasonality কীভাবে বিশ্লেষণ করবেন:
- Decomposition: টাইম সিরিজ ডেটাকে সিজনালিটি, ট্রেন্ড, এবং রেসিডুয়াল কম্পোনেন্টে বিভক্ত করে সিজনাল প্যাটার্ন চিহ্নিত করা যায়।
- Seasonal Plotting: বছরের নির্দিষ্ট সময়ে ডেটার প্যাটার্ন দেখতে গ্রাফ তৈরি করা।
import numpy as np
# সিজনালিটি তৈরি
time = pd.date_range(start='2020-01-01', periods=365, freq='D')
seasonal_data = 10 + 5 * np.sin(2 * np.pi * time.dayofyear / 365) # সিজনাল প্যাটার্ন
# টাইম সিরিজ ডেটা
seasonal_series = pd.Series(seasonal_data, index=time)
# সিজনালিটি গ্রাফ
seasonal_series.plot(title="Seasonality Analysis")
plt.show()
৩. Residual Analysis
Residual হল মূল ডেটা এবং মডেল দ্বারা পূর্বাভাসিত মানের পার্থক্য। এটি মডেলের নির্ভুলতার পরিমাপ এবং এটি আমাদের দেখায় যে মডেলটি ডেটার কোন অংশ ব্যাখ্যা করতে পারেনি। রেসিডুয়াল বিশ্লেষণ মডেল পর্যালোচনার একটি গুরুত্বপূর্ণ অংশ, যেহেতু এটি মডেলটির সঠিকতা এবং প্রভাবগুলি দেখতে সাহায্য করে।
Residual এর উদাহরণ:
- যদি আমরা একটি লিনিয়ার রিগ্রেশন মডেল ব্যবহার করি এবং ভবিষ্যদ্বাণী করি, তবে residual হবে প্রকৃত মান এবং পূর্বাভাসের মধ্যে পার্থক্য।
Residual Analysis কীভাবে করবেন:
- Residual Plot: প্রকৃত মান এবং পূর্বাভাসের মধ্যে পার্থক্য দেখানোর জন্য একটি রেসিডুয়াল প্লট তৈরি করুন।
- Normality: রেসিডুয়ালগুলির স্বাভাবিক বণ্টন পরীক্ষা করুন, যাতে বুঝতে পারা যায় যে মডেলটি ভালভাবে ফিট হয়েছে কি না।
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
# ডেটা
X = np.array([1, 2, 3, 4, 5, 6]).reshape(-1, 1) # ইনপুট ফিচার
y = np.array([2, 4, 5, 4, 5, 6]) # আউটপুট
# ট্রেন-টেস্ট ডেটাতে বিভক্ত
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# মডেল তৈরি
model = LinearRegression()
model.fit(X_train, y_train)
# পূর্বাভাস করা
y_pred = model.predict(X_test)
# রেসিডুয়াল
residuals = y_test - y_pred
# রেসিডুয়াল প্লট
plt.scatter(X_test, residuals)
plt.axhline(0, color='red', linestyle='--')
plt.title('Residual Analysis')
plt.xlabel('X values')
plt.ylabel('Residuals')
plt.show()
সারাংশ
Trend, Seasonality, এবং Residual Analysis হল সময় সিরিজ ডেটার তিনটি গুরুত্বপূর্ণ উপাদান:
- Trend হল ডেটার সময়ের সাথে প্রবণতা বা পরিবর্তন।
- Seasonality হল ডেটার সিজন বা নির্দিষ্ট সময়ের মধ্যে পুনরাবৃত্তি প্যাটার্ন।
- Residual Analysis হল মডেল দ্বারা পূর্বাভাসিত এবং প্রকৃত মানের মধ্যে পার্থক্য, যা মডেল পর্যালোচনার জন্য ব্যবহৃত হয়।
এই বিশ্লেষণগুলির মাধ্যমে আপনি সময় সিরিজ ডেটার গঠন বুঝতে পারেন এবং ভবিষ্যদ্বাণী মডেল তৈরি করতে সক্ষম হোন।
ARIMA (AutoRegressive Integrated Moving Average) এবং SARIMA (Seasonal ARIMA) হল সময়সিরিজ বিশ্লেষণ এবং পূর্বাভাসের জন্য জনপ্রিয় মডেল। এই মডেলগুলি ডেটার পূর্ববর্তী মান এবং চলমান গড়ের ভিত্তিতে ভবিষ্যৎ মান পূর্বাভাস করতে সহায়তা করে। সময়সিরিজ ডেটার মধ্যে যে ধরনের প্যাটার্ন থাকে, তা বিশ্লেষণ করার জন্য ARIMA এবং SARIMA অত্যন্ত কার্যকরী মডেল।
১. ARIMA (AutoRegressive Integrated Moving Average)
ARIMA একটি সময়সিরিজ মডেল যা তিনটি প্রধান অংশে বিভক্ত:
- AR (AutoRegressive): এটি পূর্ববর্তী সময়ের মানের উপর ভিত্তি করে বর্তমান মানের পূর্বাভাস তৈরি করে।
- I (Integrated): এটি ডেটাকে স্থিতিশীল (stationary) করার জন্য ব্যবহৃত হয়। যদি সময়সিরিজ ডেটা স্থিতিশীল না থাকে, তাহলে এটি ডিফারেন্সিং প্রক্রিয়া ব্যবহার করে।
- MA (Moving Average): এটি পূর্ববর্তী পূর্বাভাসের গড় ব্যবহার করে বর্তমান মানের পূর্বাভাস তৈরি করে।
ARIMA মডেলটি ৩টি প্যারামিটার নিয়ে কাজ করে: (p, d, q), যেখানে:
- p: AR অংশের জন্য ল্যাগ (lag) এর সংখ্যা।
- d: ডেটার স্থিতিশীলতা অর্জন করতে ডিফারেন্সিং (differencing) সংখ্যা।
- q: MA অংশের জন্য ল্যাগ (lag) এর সংখ্যা।
ARIMA মডেল ফর্মুলা:
- : বর্তমান মান
- : AR প্যারামিটার
- : MA প্যারামিটার
- : ত্রুটি (error) বা সাদা গোলমাল (white noise)
উদাহরণ (Python):
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.arima.model import ARIMA
# ডেটা লোড
data = pd.read_csv('time_series_data.csv', index_col='Date', parse_dates=True)
# ARIMA মডেল তৈরী করা (p=1, d=1, q=1)
model = ARIMA(data, order=(1, 1, 1))
# মডেল প্রশিক্ষণ
model_fit = model.fit()
# ভবিষ্যৎ মানের পূর্বাভাস
forecast = model_fit.forecast(steps=10)
# পূর্বাভাস দেখানো
print(forecast)
২. SARIMA (Seasonal ARIMA)
SARIMA (Seasonal ARIMA) হল ARIMA মডেলের একটি উন্নত সংস্করণ যা মৌসুমি (seasonal) বৈশিষ্ট্য বিশ্লেষণ এবং পূর্বাভাসের জন্য ব্যবহার করা হয়। সময়সিরিজ ডেটাতে মৌসুমি প্রভাব থাকতে পারে, যেমন, বছরের নির্দিষ্ট সময়ে ডেটার ওঠানামা। SARIMA এই মৌসুমি প্রভাবের উপর ভিত্তি করে ভবিষ্যৎ পূর্বাভাস তৈরি করে।
SARIMA মডেলটি ৭টি প্যারামিটার নিয়ে কাজ করে: (p, d, q) এবং (P, D, Q, s), যেখানে:
- (p, d, q): ARIMA অংশের জন্য প্যারামিটার
- (P, D, Q): মৌসুমী (seasonal) AR, differencing, এবং MA প্যারামিটার
- s: মৌসুমি চক্রের দৈর্ঘ্য (যেমন, মাসে ১২, ত্রৈমাসিকে ৪)
SARIMA মডেল ফর্মুলা:
- : বর্তমান মান
- : প্যারামিটার
- : ত্রুটি
উদাহরণ (Python):
from statsmodels.tsa.statespace.sarimax import SARIMAX
# SARIMA মডেল তৈরী করা (p=1, d=1, q=1, P=1, D=1, Q=1, s=12)
model = SARIMAX(data, order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
# মডেল প্রশিক্ষণ
model_fit = model.fit()
# ভবিষ্যৎ মানের পূর্বাভাস
forecast = model_fit.forecast(steps=10)
# পূর্বাভাস দেখানো
print(forecast)
ARIMA এবং SARIMA এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | ARIMA | SARIMA |
|---|---|---|
| প্রথমত্ব | মৌসুমি উপাদান না থাকলে ব্যবহার করা হয় | মৌসুমি উপাদান বিশ্লেষণের জন্য ব্যবহৃত হয় |
| প্যারামিটার | ৩টি প্যারামিটার: (p, d, q) | ৭টি প্যারামিটার: (p, d, q) + (P, D, Q, s) |
| প্রয়োগ | স্থিতিশীল (stationary) ডেটার জন্য উপযুক্ত | মৌসুমী ডেটা বিশ্লেষণ এবং পূর্বাভাসের জন্য উপযুক্ত |
কখন ব্যবহার করবেন ARIMA এবং SARIMA?
- ARIMA:
- যখন আপনার ডেটাতে মৌসুমী প্যাটার্ন নেই এবং শুধুমাত্র দীর্ঘমেয়াদি প্রবণতা বা অস্থিরতা থাকে।
- ডেটার পূর্ববর্তী মানের উপর ভিত্তি করে ভবিষ্যৎ পূর্বাভাস তৈরি করতে চাইলে।
- SARIMA:
- যখন ডেটাতে মৌসুমি প্যাটার্ন থাকে, যেমন ঋতু পরিবর্তন, মাসিক/ত্রৈমাসিক ডেটার ওঠানামা ইত্যাদি।
- মৌসুমী এবং সাধারণ প্রবণতার উপর ভিত্তি করে ভবিষ্যৎ পূর্বাভাস তৈরি করতে চাইলে।
সারাংশ
ARIMA এবং SARIMA হল শক্তিশালী সময়সিরিজ মডেল যা ডেটার প্রবণতা এবং মৌসুমী প্যাটার্ন বিশ্লেষণ করে ভবিষ্যৎ পূর্বাভাস তৈরি করতে ব্যবহৃত হয়। ARIMA মৌসুমী প্রভাব ছাড়াই সাধারণ সময়সিরিজ ডেটার জন্য উপযুক্ত, এবং SARIMA মৌসুমী বৈশিষ্ট্য বিশ্লেষণ করতে সহায়ক। এই মডেলগুলি সময়সীমার মধ্যে প্রবণতা এবং পরিবর্তনশীলতাগুলি ধরতে সাহায্য করে, যা ডেটা সায়েন্স, অর্থনীতি, আবহাওয়া পূর্বাভাস, বিক্রয় পূর্বাভাস ইত্যাদিতে ব্যাপকভাবে ব্যবহৃত হয়।
Forecasting হল ভবিষ্যতের ঘটনা বা ফলাফল পূর্বাভাস দেওয়ার প্রক্রিয়া। এটি বিভিন্ন ক্ষেত্র যেমন ব্যবসা, অর্থনীতি, আবহাওয়া, উৎপাদন এবং স্বাস্থ্য সেবায় ব্যাপকভাবে ব্যবহৃত হয়। Forecasting techniques বিভিন্ন ধরনের ডেটা ব্যবহার করে ভবিষ্যদ্বাণী করতে সাহায্য করে, যাতে সিদ্ধান্ত গ্রহণে সহায়ক হতে পারে। এই টেকনিকগুলো সাধারণত time-series data (সময়ভিত্তিক ডেটা) ব্যবহার করে ভবিষ্যদ্বাণী করার জন্য ব্যবহৃত হয়।
নিম্নে আমরা কিছু প্রধান forecasting techniques আলোচনা করব:
১. Time Series Forecasting
Time series forecasting হল এমন একটি পদ্ধতি যা সময় অনুযায়ী সংগৃহীত ডেটার প্যাটার্ন এবং প্রবণতা বিশ্লেষণ করে ভবিষ্যদ্বাণী করতে সাহায্য করে। এটি বিশেষ করে অতীতের ডেটার উপর ভিত্তি করে ভবিষ্যতের মান অনুমান করতে ব্যবহৃত হয়।
Time Series Forecasting এর পদ্ধতি:
- Trend: সময়ের সাথে সাথে ডেটার দীর্ঘমেয়াদী প্রবণতা।
- Seasonality: বছরের নির্দিষ্ট সময়ে ঘটে এমন নির্দিষ্ট প্যাটার্ন (যেমন, মৌসুমী পরিবর্তন)।
- Cyclic Patterns: সাইক্লিক মুভমেন্ট যা সময়ের উপর ভিত্তি করে পুনরাবৃত্তি হয়।
- Irregular Fluctuations: অস্বাভাবিক বা অপ্রত্যাশিত মুভমেন্ট যা সাধারণত টেম্পোরারি হয়।
Time Series Forecasting Techniques:
- Moving Average (MA):
- একাধিক পরবর্তী পর্যায়ের গড় ব্যবহার করে ভবিষ্যৎ মান পূর্বাভাস করা।
- সহজ এবং দ্রুত কিন্তু অনেক ক্ষেত্রে জটিল প্যাটার্ন ধরতে অক্ষম।
- Exponential Smoothing (ETS):
- প্রতিটি নতুন ডেটাকে তার আগের মানের চেয়ে বেশি ওজন দেওয়া হয়, যাতে এটি প্রবণতার পরিবর্তন দ্রুত প্রতিফলিত করতে পারে।
- Simple Exponential Smoothing, Holt’s Linear Trend, এবং Holt-Winters Seasonal Smoothing অন্তর্ভুক্ত।
- Autoregressive Integrated Moving Average (ARIMA):
- অতীতের মান এবং পূর্বাভাসের মধ্যে সম্পর্ক গঠন করে ভবিষ্যত মান অনুমান করা।
- AR (Autoregressive), I (Integrated), এবং MA (Moving Average) মডেলগুলির সমন্বয়।
- Seasonal Decomposition of Time Series (STL):
- Time series কে মৌসুমী, প্রবণতা, এবং অবশিষ্টাংশে বিভক্ত করা এবং পরে প্রতিটি উপাদান আলাদা বিশ্লেষণ করা।
- ভবিষ্যদ্বাণী করার জন্য এই উপাদানগুলি আবার একত্রিত করা হয়।
২. Causal Forecasting Techniques
Causal forecasting techniques সম্পর্কিত কিছু কৌশল যা বিভিন্ন কারণ এবং তাদের সম্পর্ক বিবেচনায় এনে ভবিষ্যত অনুমান করতে সহায়ক।
Linear Regression:
- এটি ভবিষ্যৎ অনুমান করার জন্য ডেটার মধ্যে সম্পর্ক বিশ্লেষণ করে। এক বা একাধিক স্বাধীন ভেরিয়েবল (predictors) ব্যবহার করে নির্ভরশীল ভেরিয়েবল (dependent variable) অনুমান করা হয়।
- Multiple Linear Regression: একাধিক ভেরিয়েবল ব্যবহার করে ভবিষ্যতের ফলাফল অনুমান করা।
- উদাহরণ:
from sklearn.linear_model import LinearRegression import numpy as np import pandas as pd # উদাহরণ ডেটা X = np.array([[1], [2], [3], [4], [5]]) # স্বাধীন ভেরিয়েবল y = np.array([1, 2, 3, 4, 5]) # নির্ভরশীল ভেরিয়েবল # মডেল প্রশিক্ষণ model = LinearRegression() model.fit(X, y) # ভবিষ্যদ্বাণী করা prediction = model.predict([[6]]) print(prediction) # ভবিষ্যৎ মান- Vector Autoregression (VAR):
- একটি কৌশল যা একাধিক চলক ব্যবহার করে একটি ভেরিয়েবলের গতিশীলতা পূর্বাভাস দেয় এবং এটি সাধারণত অর্থনৈতিক ডেটা বিশ্লেষণে ব্যবহৃত হয়।
৩. Machine Learning-Based Forecasting Techniques
Machine Learning-এর বিভিন্ন অ্যালগরিদম ব্যবহার করে অনেক উন্নত forecasting techniques তৈরি করা হয়েছে। এই পদ্ধতিগুলিতে ডেটার প্যাটার্নগুলো দ্রুত শিখে ভবিষ্যতের ফলাফলগুলো অনুমান করা হয়।
1. Random Forest for Forecasting:
- Random Forest হল একটি এনসেম্বল মডেল যা বহু decision tree ব্যবহার করে। এটা বিভিন্ন ইনপুট ভেরিয়েবল এবং তাদের সম্পর্ক বিশ্লেষণ করে ভবিষ্যত অনুমান করতে সক্ষম।
- Regression Random Forest: এটি ব্যবহৃত হয় রিগ্রেশন সমস্যায়, যেখানে ভবিষ্যতের একটি নির্দিষ্ট মান অনুমান করা হয়।
2. Gradient Boosting Machines (GBM):
- Gradient Boosting হল একটি শক্তিশালী এনসেম্বল টেকনিক যা একাধিক সিদ্ধান্ত গাছের ভিত্তিতে ভবিষ্যদ্বাণী করে। এই অ্যালগরিদমটি ত্রুটি বা বাকি ভুলগুলি কমানোর জন্য প্রতি ধাপে মডেলটি উন্নত করতে সাহায্য করে।
3. Support Vector Machines (SVM):
- SVM মূলত ক্লাসিফিকেশন কাজের জন্য ব্যবহৃত হয়, তবে রিগ্রেশন সমস্যাতেও এটি কার্যকর। SVM ফিচার স্পেসে সেরা হাইপারপ্লেন তৈরি করে যাতে এটি ভবিষ্যতের মান অনুমান করতে পারে।
4. Neural Networks (Deep Learning):
- Recurrent Neural Networks (RNN) এবং Long Short-Term Memory (LSTM) মডেলগুলি time-series forecasting এর জন্য বিশেষভাবে কার্যকরী। তারা অতীতের ডেটার মধ্যে সম্পর্ক বা প্যাটার্ন শিখে ভবিষ্যতের প্যাটার্ন অনুমান করতে পারে।
৪. Qualitative Forecasting Techniques
এই ধরনের পদ্ধতিতে এমন কিছু বৈশিষ্ট্য বা ট্রেন্ড ব্যবহার করা হয় যা পরিমাণগত ডেটা বা সংখ্যা পরিমাপের উপর ভিত্তি করে নয়। এগুলি প্রধানত judgmental forecasting বা expert opinion-based forecasting।
- Delphi Method:
- একাধিক বিশেষজ্ঞের মতামত সংগ্রহ করা এবং একটি সম্মিলিত ভবিষ্যদ্বাণী তৈরি করা।
- Market Research:
- গ্রাহকদের সাথে জরিপ এবং বাজার গবেষণার মাধ্যমে ভবিষ্যদ্বাণী করা।
সারাংশ
Forecasting techniques বিভিন্ন ধরনের ডেটা এবং সমস্যা অনুযায়ী ভিন্ন ভিন্ন হতে পারে। Time series forecasting ডেটার অতীতের প্যাটার্ন এবং প্রবণতা বিশ্লেষণ করে ভবিষ্যত অনুমান করতে সাহায্য করে, যেখানে causal forecasting বাইরে থেকে আসা ফ্যাক্টরগুলোর ভিত্তিতে ভবিষ্যত অনুমান করতে সহায়ক। Machine learning-based forecasting techniques মডেলগুলির মাধ্যমে ডেটার অদৃশ্য প্যাটার্ন খুঁজে বের করা হয়। শেষপর্যন্ত, qualitative forecasting প্রযুক্তিগুলিতে বিশেষজ্ঞের মতামত বা বাজার গবেষণার মাধ্যমে ভবিষ্যদ্বাণী করা হয়। প্রতিটি পদ্ধতির নিজস্ব সুবিধা এবং সীমাবদ্ধতা রয়েছে, এবং সঠিক পদ্ধতির নির্বাচন প্রাথমিক ডেটা এবং সমস্যা অনুসারে নির্ধারণ করা উচিত।
Time Series Data হল এমন ধরনের ডেটা যা একটি নির্দিষ্ট সময়ের মধ্যে সংগ্রহ করা হয় এবং সাধারণত এটি সময়ের সাথে সাথে পরিবর্তনশীল। Time Series বিশ্লেষণ এবং ভিজ্যুয়ালাইজেশন ডেটার প্রবণতা (trend), মৌসুমি পরিবর্তন (seasonality), এবং অন্যান্য নিদর্শন সনাক্ত করতে সহায়ক। এই ধরনের ডেটা সাধারণত ব্যবসা, অর্থনীতি, আবহাওয়া, স্টক মার্কেট, ইত্যাদির বিশ্লেষণে ব্যবহৃত হয়।
Time Series ডেটার জন্য Visualization এবং Evaluation গুরুত্বপূর্ণ, কারণ এটি ডেটার প্রবণতা, মৌসুমি পরিবর্তন এবং অন্যান্য বৈশিষ্ট্য চিহ্নিত করতে সাহায্য করে, এবং ভবিষ্যদ্বাণী বা অন্যান্য সিদ্ধান্ত গ্রহণ প্রক্রিয়া সহজ করে তোলে।
১. Time Series Data Visualization
Time Series Data Visualization ডেটার প্যাটার্ন এবং পরিবর্তনগুলিকে আরও ভালভাবে বোঝার জন্য অত্যন্ত গুরুত্বপূর্ণ। Time Series ডেটা দেখানোর জন্য বিভিন্ন ধরনের ভিজ্যুয়ালাইজেশন পদ্ধতি ব্যবহৃত হয়।
১.১ Line Plot (লাইনে প্লট)
এটি Time Series ডেটা ভিজ্যুয়ালাইজ করার জন্য সবচেয়ে জনপ্রিয় এবং সাধারণ পদ্ধতি। এটি সময়ের সাথে পরিবর্তনশীলতা দেখানোর জন্য ব্যবহার করা হয়।
import matplotlib.pyplot as plt
import pandas as pd
# ডেটা তৈরি
date_range = pd.date_range(start='2020-01-01', periods=100, freq='D')
data = pd.Series(range(100), index=date_range)
# লাইনে প্লট তৈরি
plt.figure(figsize=(10,6))
plt.plot(data)
plt.title('Time Series Line Plot')
plt.xlabel('Date')
plt.ylabel('Value')
plt.show()
১.২ Seasonality এবং Trend এর বিশ্লেষণ
Time Series ডেটা বিশ্লেষণ করে মৌসুমি পরিবর্তন এবং প্রবণতা নির্ধারণ করা যেতে পারে।
- Seasonality: মৌসুমি পরিবর্তন এক ধরনের প্যাটার্ন যা নির্দিষ্ট সময়ের মধ্যে পুনরাবৃত্তি হয় (যেমন, বছরে একটি নির্দিষ্ট সময়ে গরম বা শীতের ঋতু)।
- Trend: দীর্ঘমেয়াদী প্রবণতা, যা সময়ের সাথে ধীরে ধীরে পরিবর্তন হতে পারে।
১.৩ Decomposition Plot
Time Series ডেটার উপাদানগুলির (প্রবণতা, মৌসুমি, এবং ত্রুটি) বিশ্লেষণ করতে seasonal decomposition of time series (STL) ব্যবহার করা হয়।
from statsmodels.tsa.seasonal import seasonal_decompose
# ডেটা তৈরি
data = pd.Series(range(100), index=pd.date_range(start='2020-01-01', periods=100, freq='D'))
# ডেটা ডিকম্পোজিশন
result = seasonal_decompose(data, model='additive', period=30)
# প্লট তৈরি
result.plot()
plt.show()
১.৪ Autocorrelation Plot
Autocorrelation plot ডেটার স্ব-সম্পর্ক নির্ধারণ করতে ব্যবহৃত হয়, যা পরবর্তী সময়ের মান পূর্ববর্তী মানের সাথে সম্পর্কিত কিনা তা পরীক্ষা করে।
from pandas.plotting import autocorrelation_plot
# ডেটা তৈরি
data = pd.Series(range(100), index=pd.date_range(start='2020-01-01', periods=100, freq='D'))
# অটোকরিলেশন প্লট তৈরি
autocorrelation_plot(data)
plt.show()
২. Time Series Data Evaluation
Time Series Data Evaluation হল Time Series মডেল বা পূর্বাভাসের কার্যকারিতা মূল্যায়ন করা। Time Series বিশ্লেষণের জন্য বিভিন্ন মেট্রিক্স এবং কৌশল রয়েছে যা পূর্বাভাসের যথার্থতা এবং মডেলের কর্মক্ষমতা নির্ধারণ করে।
২.১ Mean Absolute Error (MAE)
MAE হল একটি সাধারণ মেট্রিক যা প্রকৃত মান এবং পূর্বাভাসের মধ্যে গড় পার্থক্য নির্ধারণ করে। MAE হল একটি ন্যূনতম ত্রুটি মাপ যা বুঝতে সহজ।
যেখানে:
- হল প্রকৃত মান
- হল পূর্বাভাস মান
from sklearn.metrics import mean_absolute_error
# প্রকৃত ডেটা এবং পূর্বাভাস ডেটা
y_true = [3, 5, 7, 9]
y_pred = [2.8, 5.1, 6.8, 8.9]
# MAE গণনা
mae = mean_absolute_error(y_true, y_pred)
print(f"Mean Absolute Error (MAE): {mae}")
২.২ Root Mean Squared Error (RMSE)
RMSE হল একটি গুরুত্বপূর্ণ মেট্রিক যা পূর্বাভাসের ত্রুটির স্কোয়ার রুট হিসেবে গণনা করা হয়। এটি বৃহত্তর ত্রুটির জন্য বেশি জরিমানা দেয় এবং এটি মূলত স্ট্যান্ডার্ড ডেভিয়েশন-এর মতো।
from sklearn.metrics import mean_squared_error
import numpy as np
# RMSE গণনা
rmse = np.sqrt(mean_squared_error(y_true, y_pred))
print(f"Root Mean Squared Error (RMSE): {rmse}")
২.৩ Mean Absolute Percentage Error (MAPE)
MAPE হল একটি জনপ্রিয় মেট্রিক যা পূর্বাভাস ত্রুটির শতাংশ হিসাবে পরিমাপ করে এবং এটি খুবই সহায়ক যদি আপনি পারসেন্টেজ ত্রুটি দেখতে চান।
def mean_absolute_percentage_error(y_true, y_pred):
return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
# MAPE গণনা
mape = mean_absolute_percentage_error(y_true, y_pred)
print(f"Mean Absolute Percentage Error (MAPE): {mape}%")
২.৪ Akaike Information Criterion (AIC) এবং Bayesian Information Criterion (BIC)
AIC এবং BIC হল মডেল নির্বাচনের জন্য ব্যবহৃত পরিমাপ, যা মডেলের ফিটনেস এবং জটিলতা উভয়ই বিবেচনায় নেয়। সাধারণভাবে, কম AIC/BIC মান ভাল মডেল নির্দেশ করে।
৩. Time Series Forecasting Models Evaluation
Time Series মডেলগুলির জন্য বিভিন্ন মূল্যায়ন কৌশল এবং মেট্রিক্স ব্যবহৃত হয়:
- ARIMA (AutoRegressive Integrated Moving Average): এটি একক ভেরিয়েবল Time Series পূর্বাভাসের জন্য ব্যবহৃত হয়।
- Exponential Smoothing: সাম্প্রতিক পর্যায়ের মানকে বেশি গুরুত্ব দিয়ে পূর্বাভাস করা হয়।
- SARIMA (Seasonal ARIMA): মৌসুমি প্রবণতা সহ Time Series পূর্বাভাসের জন্য ব্যবহৃত হয়।
এছাড়া, Cross-validation Time Series ডেটার জন্য সামান্য ভিন্নভাবে করা হয় (স্লাইসিং বা টাইম-সিরিজ স্পেসিফিক ক্রস-ভ্যালিডেশন)।
সারাংশ
Time Series Data Visualization এবং Evaluation অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি Time Series ডেটার মধ্যে প্রবণতা, মৌসুমি পরিবর্তন এবং সম্পর্ক সনাক্ত করতে সহায়ক। Visualization কৌশলগুলি, যেমন Line Plot, Boxplot, এবং Decomposition Plot, ডেটার ইনসাইট বের করতে ব্যবহৃত হয়, এবং Evaluation মেট্রিক্স, যেমন MAE, RMSE, MAPE, Time Series পূর্বাভাসের নির্ভুলতা মূল্যায়ন করতে সহায়ক। Time Series মডেল নির্বাচনে সঠিক ভিজ্যুয়ালাইজেশন এবং মূল্যায়ন কৌশল নির্বাচন করা খুবই গুরুত্বপূর্ণ।
Read more